1. Technical Field
The present disclosure relates to point clouds, and more specifically, to techniques for reconstructing a vector-based model from point clouds.
2. Background Information
Three-dimensional (3-D) laser scanners are increasingly being used to accurately and quickly capture the shape of physical subjects, such as discrete objects, portions of structures, terrain, or other parts of the physical environment. Such scanners capture a point cloud of geometric samples on the surface of the subject. To accomplish such task, a 3-D laser scanner typically emits some form of coherent light and detects its reflection from the surface of the physical subject. Some 3-D laser scanners rely on time-of-flight. In a time-of-flight 3-D laser scanner, a laser emits pulses of coherent light in a grid-like pattern to scan the physical subject. A laser rangefinder finds the distance to the surface of the physical subject for each pulse of coherent light by timing the round-trip-time of the pulse of light, from its emission, to its reflection back to the laser rangefinder. Other 3-D laser scanners rely on some form of triangulation. Like a time-of-flight 3-D laser scanner, a triangulation 3-D laser scanner also emits coherent light in a grid-like pattern to scan the physical subject. However, rather than measure time-of flight, an offset camera is employed to look for the location where the coherent light strikes the subject (i.e. a laser dot). Depending on how far away the coherent light strikes the surface, the laser dot appears at different places in the camera's field of view, which can be used in a triangulation calculation to determine distance. In either case, a point cloud of geometric samples is produced by repeated application of the technique, where each point of the point cloud is associated with a particular x-axis, y-axis and z-axis position on the surface of the physical subject.
The points of the point cloud can be used to extrapolate the shape of the physical subject, which may be translated into a more readily used form through a reconstruction process. In reconstruction, the points of the point cloud are often used to produce a vector-based model, where the subject is represented by vector elements based on mathematical formulas, rather than by a large number of discrete points. For example, a first group of points that represent a surface may be converted to a first planar vector element. Likewise, a second group of points that represent another surface may be converted to a second planar vector element. In this manner, large numbers of discreet points may be reduced to a relatively small number of vector elements.
Unfortunately, reconstructing a vector-based model from a point cloud is typically a difficult process. Common reconstruction techniques include various automatic techniques and manual techniques.
In automatic techniques, a vector-based model is constructed by an automated process, where geometric primitives are automatically detected and converted into vector elements, for example by software. While seemingly appealing, such automatic techniques generally suffer from a number of shortcomings.
First, automatic techniques typically have no understanding of the geometry of the physical subject, and what points are significant or insignificant. The techniques generally rely upon a sensitivity parameter that indicates a threshold level of match between points and geometric primitives. Calibrating this sensitivity parameter may be extremely difficult, as it may vary among point clouds, depending on such things as the particular laser scanner employed to capture the point cloud, the particular physical subject scanned, distances between the scanner and subject, and the like. If it is set too thigh, a large number of very small geometric primitives may be detected, leading to a cluttered, confusing and potentially unusable vector-based model. For example, a particular physical feature (e.g., a door) may be represented by a large number of small geometric primitives. If a user desires to manipulate (e.g., move) the feature to test an alternative design, they would have to manipulate each an every one of the geometric primitives. This may be a daunting task. On the other hand, if the sensitivity parameter is set too low, a small number of very large geometric primitives may be detected, leading to a vector-based model that obscures or entirely omits important details. For example, a particular physical feature (e.g., a door) may be grouped together with other physical features (e.g., wall portions) and represented by a single geometric primitive. A user may be prevented from manipulating (e.g., moving) the feature to test an alternative design, absent times consuming manual operations to “separate” it from it from the other features.
Second, automatic techniques may be overly processing intensive, and therefore time consuming on typically computing hardware. Point clouds may include an extremely large number of discrete points, and it may require minutes or even hours to process an entire point cloud with an automatic technique on typical computing hardware. This delay may discourage the generation of vector-based models.
In manual techniques, a user is typically required to manually “draw” geometric primitives onto the point cloud, defining the extent of each geometric primitive. To “draw” geometric primitives, a user may manipulate a cursor to select a first specific point of the point cloud. The user may then move from this first point to one or more other specific points that are then selected. Collectively, the selected specific points define the exact bounds of the geometric primitive. However, such manual techniques generally suffer from a number of shortcomings.
First, it may be difficult for a user to accurately select specific points in a point cloud to “draw” the geometric primitive. When displayed on a typical display screen, e.g. a two-dimension (2-D) display screen, a point cloud typically appears completely flat. While each point in the point cloud may represent data at a different distance in 3-D space, when displayed on a 2-D display screen, a user may be unable to discern how far away from the viewing position a point is in 3-D space, without time-consuming additional operations. This may cause it to be difficult to accurately select specific points.
Second, manual approaches may be quite slow. The user may be burdened with precisely “drawing” each geometric primitive by selecting specific points that define their bounds. Given the effort and time required, it may discourage the generation of vector-based models.
Accordingly, there is a need for improved techniques for reconstructing a vector-based model from a point cloud that may address some, or all, of these shortcomings.